In design of a PC and a server, a BIOS program is generally stored in a Flash Rom, and many parameters in the Flash Rom are required in a source code. At present, normally a specification provided by a ROM manufacturer is used to retrieve the required parameters to be added into programs. An error of the parameters may cause a crash of a system in a post process, or cause a probability of crash. But generally it is difficult to discover a problem caused by incorrect configuration of the FLASH ROM parameters. In order to facilitate check on the parameters of the Flash Rom, it is necessary to design a method to read these parameters. Detailed parameters of the Flash Rom are stored in a SFDP Table thereof, and any required parameters can be found in the SFDP Table.
It is not required to access the SFDP table for just reading an ID or a size of the Flash Rom. But the detailed parameters in the Flash Rom and supported functions thereof can be acquired only by reading the SFDP Table. An Intel platform has some restrictions on accessing the Flash Rom, that is, any accessing commands can only be used after being stored in an OPMENU register and an OPTYPE register. For example, a command to read the SFDP table is 0x5A. In a case that this command is not in the OPMEUN register, the SFDP cannot be read. In fact, 0x5A is not in the OPMENU register by default, and the two registers are locked at a PEI stage. Therefore, the SFDP table cannot be read after the system is started.